home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Arsenal Files 8
/
The Arsenal Files Collection #8 (Arsenal Computer) (1996).ISO
/
pcboard
/
is_fm_25.zip
/
FILEMENU.PPE
(
.txt
)
< prev
next >
Wrap
PCBoard Programming Language Executable
|
1996-11-29
|
8KB
|
497 lines
;------------------------------------------------------------------------------
; .ss.
; `²²'
; .,sS$Ss,,s$ .,sS$$$Ss. .,sS$Ss,,s$ .ss. .sSs.
; .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
; $$$' .$$$' $$$²Sçsµ²' .$$$' .$$$'.$$$' .$$$' `$$b.
; $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$' ;$$$
; `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
; .sS²°$$$²²°"' d²°'
; .$$² .$$'
; $$$.,d$$'
; `²S$$S²'
;------------------------------------------------------------------------------
; P.P.L.X. 2.OO (C)1996 - Lone Runner / AEGiS CoRP'96
;------------------------------------------------------------------------------
; PPE 3.2O (Encryption type I) - Analysis ON - Postprocessing ON
;------------------------------------------------------------------------------
Boolean BOOLEAN001
Boolean BOOLEAN002
Boolean BOOLEAN003
Boolean BOOLEAN006
Integer INTEGER001
Integer INTEGER002
Integer INTEGER003
Integer INTEGER004
Integer INTEGER005
Integer INTEGER006
Integer INTEGER007
Integer INTEGER008
Integer INTEGER009
Integer INTEGER010
Integer INTEGER011
Integer INTEGER012
Integer INTEGER013
Integer INTEGER014
Integer INTEGER015
String STRING001
String STRING002
String STRING003
String STRING004
String STRING005
String STRING006
String STRING007
String STRING008
String STRING009
String STRING010
String STRING011
String STRING012
String STRING013
String STRING014
String STRING015
String STRING016
String STRING017
Byte TBYTE001(50)
Byte TBYTE002(8)
BigStr BIGSTR001
BigStr BIGSTR002
BigStr BIGSTR003
BigStr BIGSTR004
BigStr BIGSTR005
Declare Procedure PROC001(String STRING019, Var Boolean BOOLEAN005, Var String STRING020)
Declare Procedure PROC002(Var Boolean BOOLEAN004, Var String STRING018)
Declare Procedure PROC003(String STRING021, String STRING022, Integer INTEGER016, String STRING023)
;------------------------------------------------------------------------------
Goto LABEL001
End
;------------------------------------------------------------------------------
Procedure PROC002(Var Boolean BOOLEAN004, Var String STRING018)
If (Exist(PPEPath() + PPEName() + ".KEY")) Then
PROC001(PPEPath() + PPEName() + ".KEY", BOOLEAN004, STRING018)
ElseIf (Exist(PPEPath() + "POWERPAK.KEY")) Then
PROC001(PPEPath() + "POWERPAK.KEY", BOOLEAN004, STRING018)
Else
BOOLEAN004 = 0
STRING018 = "Unregistered"
Endif
EndProc
;------------------------------------------------------------------------------
Procedure PROC001(String STRING019, Var Boolean BOOLEAN005, Var String STRING020)
Integer INTEGER011
BigStr BIGSTR001
BigStr BIGSTR002
BigStr BIGSTR003
Boolean BOOLEAN006
BigStr BIGSTR004
BigStr BIGSTR005
Byte TBYTE001(50)
Byte TBYTE002(8)
Integer INTEGER012
Integer INTEGER013
Integer INTEGER014
Integer INTEGER015
BOOLEAN006 = 1
BIGSTR003 = ""
STRING020 = "Unregistered"
INTEGER011 = FNext()
FOpen INTEGER011, STRING019, 0, 0
FDefIn INTEGER011
FDRead BIGSTR001, 50
BIGSTR004 = BIGSTR001
BIGSTR003 = BIGSTR001
For INTEGER015 = 1 To 50
FDRead TBYTE001(INTEGER015), 1
BIGSTR003 = BIGSTR003 + String(TBYTE001(INTEGER015))
If (IsBitSet(BIGSTR004, TBYTE001(INTEGER015))) Then
BitClear BIGSTR004, TBYTE001(INTEGER015)
Continue
Endif
BitSet BIGSTR004, TBYTE001(INTEGER015)
Next
STRING020 = Trim(BIGSTR004, " ")
FDRead BIGSTR002, 8
BIGSTR005 = BIGSTR002
BIGSTR003 = BIGSTR003 + BIGSTR002
For INTEGER015 = 1 To 8
FDRead TBYTE002(INTEGER015), 1
BIGSTR003 = BIGSTR003 + String(TBYTE002(INTEGER015))
If (IsBitSet(BIGSTR005, TBYTE002(INTEGER015))) Then
BitClear BIGSTR005, TBYTE002(INTEGER015)
Continue
Endif
BitSet BIGSTR005, TBYTE002(INTEGER015)
Next
FDRead INTEGER012, 4
FDRead INTEGER013, 4
FDRead INTEGER014, 4
FClose INTEGER011
BIGSTR003 = BIGSTR003 + String(INTEGER012) + String(INTEGER013)
If ((Trim(BIGSTR005, " ") <> PPEName()) && (BIGSTR005 <> "POWERPAK")) Then
BOOLEAN006 = 0
STRING020 = "Invalid Key"
ElseIf (((INTEGER014 <> Crc32(0, BIGSTR003)) || (INTEGER012 <> Crc32(0, BIGSTR001))) || (INTEGER013 <> Crc32(0, BIGSTR002))) Then
BOOLEAN006 = 0
STRING020 = "Invalid Key"
Endif
BOOLEAN005 = BOOLEAN006
EndProc
:LABEL001
PROC002(BOOLEAN003, STRING017)
STRING010 = "2.5 "
STRING011 = "@X0BFileMenu v" + STRING010 + "@X09■Registered To: " + Left(STRING017, 23)
STRING014 = PPEPath() + PPEName() + ".CNF"
STRING002 = TokenStr()
If (!(Strip(STRING002, Chr(32)) == "")) PROC003("", "F " + STRING002 + Chr(13), 0, "")
RdUNet PcbNode()
STRING013 = UN_City()
WrUNet PcbNode(), UN_Stat(), U_Name(), "In FileMenu", "", ""
If (Exist(STRING014)) Goto LABEL002
PrintLn "@X0CConfig File Missing"
Log "Filemenu - No Config File Found", 0
Wait
WrUNet PcbNode(), UN_Stat(), U_Name(), STRING013, "", ""
End
:LABEL002
FOpen 1, STRING014, 0, 0
FGet 1, STRING001
FGet 1, STRING001
FGet 1, STRING001
FGet 1, STRING012
FGet 1, STRING001
BOOLEAN001 = (Upper(Trim(STRING001, " ")) == "Y")
FClose 1
STRING009 = PPEPath() + String(CurConf()) + ".TBL"
If (!Exist(STRING009)) STRING009 = PPEPath() + STRING012
If (!Exist(STRING009)) STRING009 = PPEPath() + "0.TBL"
If (Exist(STRING009)) Goto LABEL003
PrintLn "@X0CFile Table Missing"
Log "Filemenu - No File Table Found", 0
Wait
WrUNet PcbNode(), UN_Stat(), U_Name(), STRING013, "", ""
End
:LABEL003
FOpen 1, STRING009, 0, 0
FGet 1, STRING006
FGet 1, STRING005
FGet 1, STRING001
If (!(Trim(STRING001, " ") == "")) BOOLEAN001 = Upper(Trim(STRING001, " ")) == "Y"
FClose 1
If (Exist(STRING006)) Goto LABEL004
Log "Missing Dir List - " + STRING006, 0
PROC003("Error in TBL, Dir List missing", Chr(13), 36, STRING013)
:LABEL004
Cls
DispFile STRING005, 4 + 2 + 1
STRING003 = ""
PrintLn STRING011
InputStr "@X0BWhich File Library @X0F#@X0B would you like to view, or @X0FS@X0B to Search", STRING003, 11, 3, "1234567890SsZzLl", 256 + 2 + 8
Select Case (STRING003)
Case "Z", "L", "I"
PROC003("", STRING003 + Chr(13), 0, STRING013)
Case "S"
INTEGER010 = 2
INTEGER009 = 0
STRING003 = ""
PrintLn
InputStr "@X0BWhat FILE DIRECTORY (Not Filename) string to search for", STRING003, 11, 20, Mask_Ascii(), 2 + 8
If (STRING003 == "") End
Cls
PrintLn STRING011
PrintLn
FOpen 2, STRING009, 0, 0
FGet 2, STRING001
FGet 2, STRING001
FGet 2, STRING001
:LABEL005
If (Ferr(2)) Goto LABEL007
INTEGER009 = INTEGER009 + 1
BOOLEAN002 = 0
FGet 2, STRING008
If (Ferr(2) || (Trim(STRING008, " ") == "")) Goto LABEL007
FGet 2, STRING016
If (Ferr(2)) Goto LABEL007
FGet 2, STRING015
If (Ferr(2)) Goto LABEL007
FGet 2, STRING001
If (Upper(Trim(STRING008, " ")) == "STUFF") Goto LABEL006
If (Upper(Trim(STRING016, " ")) == "MULTIPLE") Then
BOOLEAN002 = 1
Tokenize STRING015
STRING016 = GetToken()
If (InStr(STRING016, "-") > 0) Then
INTEGER008 = ToInteger(Right(STRING016, Len(STRING016) - InStr(STRING016, "-")))
INTEGER007 = ToInteger(Left(STRING016, InStr(STRING016, "-") - 1))
Else
INTEGER007 = ToInteger(STRING016)
INTEGER008 = ToInteger(STRING016)
Endif
Else
INTEGER007 = ToInteger(STRING016)
INTEGER008 = ToInteger(STRING015)
Endif
PrintLn "@X0CMenu ", Left(String(INTEGER009), 3), " @X0D(", STRING008, ")@X07"
Inc INTEGER010
INTEGER002 = 0
INTEGER004 = FileInf(STRING006, 4) / 96
If (INTEGER008 > INTEGER004) INTEGER008 = INTEGER004
While (1) Do
FOpen 1, STRING006, 0, 0
FDefIn 1
FSeek 1, 0, 0
For INTEGER006 = 1 To INTEGER004
Inc INTEGER002
FRead 1, STRING007, 96
STRING007 = Mid(STRING007, 61, 34 - Len(String(INTEGER002)))
If (((InStr(Upper(STRING007), STRING003) >= 1) && (INTEGER002 >= INTEGER007)) && (INTEGER002 <= INTEGER008)) Then
Inc INTEGER010
PrintLn "@X0EDir # @X0F", Left(String(INTEGER002), 4), "@X0A ", STRING007
Endif
If (INTEGER002 > INTEGER008) Break
If (INTEGER010 == 20) Then
STRING003 = YesChar()
InputYN "@X0EView next screen (Enter for more)", STRING003, 14
If (STRING003 == NoChar()) Then
FCloseAll
PrintLn
PROC003("", "", 0, STRING013)
Endif
Cls
PrintLn STRING011
PrintLn
PrintLn "@X0CMenu ", Left(String(INTEGER009), 3), " @X0D(", STRING008, ")@X07"
INTEGER010 = 3
Endif
Next
FClose 1
If (!BOOLEAN002 || (TokCount() == 0)) Break
STRING016 = GetToken()
If (InStr(STRING016, "-") > 0) Then
INTEGER008 = ToInteger(Right(STRING016, Len(STRING016) - InStr(STRING016, "-")))
INTEGER007 = ToInteger(Left(STRING016, InStr(STRING016, "-") - 1))
Continue
Endif
INTEGER007 = ToInteger(STRING016)
INTEGER008 = ToInteger(STRING016)
EndWhile
:LABEL006
Goto LABEL005
:LABEL007
FClose 2
Wait
Case Else
BOOLEAN002 = 0
INTEGER003 = STRING003
If (INTEGER003 == 0) PROC003("", Chr(13), 0, STRING013)
FOpen 1, STRING009, 0, 0
FGet 1, STRING001
FGet 1, STRING001
FGet 1, STRING001
For INTEGER006 = 1 To INTEGER003
FGet 1, STRING008
If (Ferr(1)) PROC003("@X0CInvalid Choice", Chr(13), 18, STRING013)
FGet 1, STRING016
If (Ferr(1)) PROC003("@X0CInvalid Choice", Chr(13), 18, STRING013)
FGet 1, STRING015
If (Ferr(1)) PROC003("@X0CInvalid Choice", Chr(13), 18, STRING013)
FGet 1, STRING001
Next
FClose 1
If (Upper(Trim(STRING008, " ")) == "STUFF") PROC003("", Chr(13) + "" + Chr(13), 0, STRING013)
If (Upper(Trim(STRING016, " ")) == "MULTIPLE") Then
BOOLEAN002 = 1
Tokenize STRING015
STRING016 = GetToken()
If (InStr(STRING016, "-") > 0) Then
INTEGER008 = ToInteger(Right(STRING016, Len(STRING016) - InStr(STRING016, "-")))
INTEGER007 = ToInteger(Left(STRING016, InStr(STRING016, "-") - 1))
Else
INTEGER007 = ToInteger(STRING016)
INTEGER008 = ToInteger(STRING016)
Endif
Else
INTEGER007 = ToInteger(STRING016)
INTEGER008 = ToInteger(STRING015)
Endif
INTEGER003 = 0
INTEGER001 = 0
INTEGER002 = 0
INTEGER004 = FileInf(STRING006, 4) / 96
If (INTEGER008 > INTEGER004) INTEGER008 = INTEGER004
INTEGER005 = INTEGER004 + 1
While (1) Do
FOpen 1, STRING006, 0, 0
FDefIn 1
FSeek 1, 0, 1
For INTEGER006 = 1 To INTEGER008
INTEGER002 = INTEGER002 + 1
FRead 1, STRING007, 96
STRING007 = Mid(STRING007, 61, 34 - Len(String(INTEGER002)))
If ((INTEGER002 >= INTEGER007) && (INTEGER002 <= INTEGER008)) Then
If (INTEGER001 == 0) Then
Cls
PrintLn STRING011
PrintLn " @X0EDisplaying: @X0D", Left(STRING008, 10)
PrintLn
Endif
Inc INTEGER001
Print "@X0F", Right(String(INTEGER002), 4), "@X0B ", Left(STRING007, 34)
If (INTEGER001 % 2 == 0) Newline
If ((INTEGER001 == 30) && !(INTEGER002 == INTEGER008)) Then
DefColor
INTEGER001 = 0
STRING004 = YesChar()
PrintLn
InputYN "View next screen (Enter for more)", STRING004, 14
If (STRING004 == NoChar()) Then
FCloseAll
PROC003("", "", 0, STRING013)
Endif
Endif
Endif
Next
FClose 1
If (!BOOLEAN002 || (TokCount() == 0)) Break
STRING016 = GetToken()
If (InStr(STRING016, "-") > 0) Then
INTEGER008 = ToInteger(Right(STRING016, Len(STRING016) - InStr(STRING016, "-")))
INTEGER007 = ToInteger(Left(STRING016, InStr(STRING016, "-") - 1))
Continue
Endif
INTEGER007 = ToInteger(STRING016)
INTEGER008 = ToInteger(STRING016)
EndWhile
If (BOOLEAN001) Print "@X0B", Right(String(INTEGER005), 4) , "@X0F Recent Uploads"
End Select
PrintLn
WrUNet PcbNode(), UN_Stat(), U_Name(), STRING013, "", ""
End
;------------------------------------------------------------------------------
Procedure PROC003(String STRING021, String STRING022, Integer INTEGER016, String STRING023)
If (STRING022 <> "") KbdStuff STRING022
If (!(STRING021 == "")) PrintLn STRING021
If (!(INTEGER016 == 0)) Delay INTEGER016
WrUNet PcbNode(), UN_Stat(), U_Name(), STRING023, "", ""
End
EndProc
;------------------------------------------------------------------------------
;
; Usage report (before postprocessing)
;
; ■ Statements used :
;
; 6 End
; 4 Cls
; 3 Wait
; 61 Goto
; 89 Let
; 2 Print
; 18 PrintLn
; 56 If
; 1 DispFile
; 7 FOpen
; 7 FClose
; 22 FGet
; 1 DefColor
; 3 Log
; 2 InputStr
; 2 InputYN
; 1 Delay
; 4 Inc
; 1 Newline
; 2 Tokenize
; 1 KbdStuff
; 1 RdUNet
; 5 WrUNet
; 2 FSeek
; 2 FRead
; 3 FDefIn
; 7 FDRead
; 2 BitSet
; 2 BitClear
; 2 FCloseAll
; 3 EndProc
;
;
; ■ Functions used :
;
; 2 /
; 1 %
; 39 +
; 10 -
; 26 ==
; 6 <>
; 5 <
; 7 <=
; 7 >
; 13 >=
; 41 !
; 15 &&
; 12 ||
; 6 Len(
; 7 Upper()
; 2 Mid()
; 10 Left()
; 6 Right()
; 7 Ferr()
; 10 Chr()
; 13 InStr()
; 10 Trim()
; 5 U_Name()
; 2 NoChar()
; 2 YesChar()
; 1 Strip()
; 12 String()
; 1 Mask_Ascii()
; 1 CurConf()
; 8 PPEPath()
; 6 PcbNode()
; 5 UN_Stat()
; 1 UN_City()
; 4 GetToken()
; 7 Exist()
; 1 TokenStr()
; 2 FileInf()
; 4 PPEName()
; 2 TokCount()
; 20 ToInteger()
; 2 IsBitSet()
; 3 Crc32()
; 1 FNext()
;
;------------------------------------------------------------------------------
;
; Analysis flags : No flag
;
;------------------------------------------------------------------------------
;
; Postprocessing report
;
; 5 For/Next
; 2 While/EndWhile
; 19 If/Then or If/Then/Else
; 1 Select Case
;
;------------------------------------------------------------------------------
; AEGiS Corp - Break the routines, code against the machines!
;------------------------------------------------------------------------------